home *** CD-ROM | disk | FTP | other *** search
/ Developer CD Series 1999 July: Mac OS SDK / Dev.CD Jul 99 SDK1.toast / Development Kits / Mac OS / Interfaces&Libraries / Universal / Interfaces / CIncludes / Displays.h < prev    next >
Encoding:
C/C++ Source or Header  |  1998-08-17  |  27.3 KB  |  757 lines  |  [TEXT/MPS ]

  1. /*
  2.      File:        Displays.h
  3.  
  4.      Contains:    Display Manager Interfaces.
  5.  
  6.      Version:    Technology:    System 7.5
  7.                  Release:    Universal Interfaces 3.2
  8.  
  9.      Copyright:    © 1993-1998 by Apple Computer, Inc., all rights reserved.
  10.  
  11.      Bugs?:        For bug reports, consult the following page on
  12.                  the World Wide Web:
  13.  
  14.                      http://developer.apple.com/bugreporter/
  15.  
  16. */
  17. #ifndef __DISPLAYS__
  18. #define __DISPLAYS__
  19.  
  20. #ifndef __CONDITIONALMACROS__
  21. #include <ConditionalMacros.h>
  22. #endif
  23. #ifndef __COMPONENTS__
  24. #include <Components.h>
  25. #endif
  26. #ifndef __VIDEO__
  27. #include <Video.h>
  28. #endif
  29.  
  30. #ifndef __APPLEEVENTS__
  31. #include <AppleEvents.h>
  32. #endif
  33. #ifndef __EVENTS__
  34. #include <Events.h>
  35. #endif
  36. #ifndef __PROCESSES__
  37. #include <Processes.h>
  38. #endif
  39. #ifndef __DIALOGS__
  40. #include <Dialogs.h>
  41. #endif
  42.  
  43.  
  44. #if PRAGMA_ONCE
  45. #pragma once
  46. #endif
  47.  
  48. #ifdef __cplusplus
  49. extern "C" {
  50. #endif
  51.  
  52. #if PRAGMA_IMPORT
  53. #pragma import on
  54. #endif
  55.  
  56. #if PRAGMA_STRUCT_ALIGN
  57.     #pragma options align=mac68k
  58. #elif PRAGMA_STRUCT_PACKPUSH
  59.     #pragma pack(push, 2)
  60. #elif PRAGMA_STRUCT_PACK
  61.     #pragma pack(2)
  62. #endif
  63.  
  64. #ifndef FOR_GLUE_LIB
  65. #define FOR_GLUE_LIB 0
  66. #endif  /* !defined(FOR_GLUE_LIB) */
  67.  
  68. #ifndef FOR_68kGLUE_LIB
  69. #define FOR_68kGLUE_LIB 0
  70. #endif  /* !defined(FOR_68kGLUE_LIB) */
  71.  
  72.  
  73. enum {
  74.                                                                 /* AppleEvents Core Suite */
  75.     kAESystemConfigNotice        = FOUR_CHAR_CODE('cnfg'),        /* Core Suite types */
  76.     kAEDisplayNotice            = FOUR_CHAR_CODE('dspl'),
  77.     kAEDisplaySummary            = FOUR_CHAR_CODE('dsum'),
  78.     keyDMConfigVersion            = FOUR_CHAR_CODE('dmcv'),
  79.     keyDMConfigFlags            = FOUR_CHAR_CODE('dmcf'),
  80.     keyDMConfigReserved            = FOUR_CHAR_CODE('dmcr'),
  81.     keyDisplayID                = FOUR_CHAR_CODE('dmid'),
  82.     keyDisplayComponent            = FOUR_CHAR_CODE('dmdc'),
  83.     keyDisplayDevice            = FOUR_CHAR_CODE('dmdd'),
  84.     keyDisplayFlags                = FOUR_CHAR_CODE('dmdf'),
  85.     keyDisplayMode                = FOUR_CHAR_CODE('dmdm'),
  86.     keyDisplayModeReserved        = FOUR_CHAR_CODE('dmmr'),
  87.     keyDisplayReserved            = FOUR_CHAR_CODE('dmdr'),
  88.     keyDisplayMirroredId        = FOUR_CHAR_CODE('dmmi'),
  89.     keyDeviceFlags                = FOUR_CHAR_CODE('dddf'),
  90.     keyDeviceDepthMode            = FOUR_CHAR_CODE('dddm'),
  91.     keyDeviceRect                = FOUR_CHAR_CODE('dddr'),
  92.     keyPixMapRect                = FOUR_CHAR_CODE('dpdr'),
  93.     keyPixMapHResolution        = FOUR_CHAR_CODE('dphr'),
  94.     keyPixMapVResolution        = FOUR_CHAR_CODE('dpvr'),
  95.     keyPixMapPixelType            = FOUR_CHAR_CODE('dppt'),
  96.     keyPixMapPixelSize            = FOUR_CHAR_CODE('dpps'),
  97.     keyPixMapCmpCount            = FOUR_CHAR_CODE('dpcc'),
  98.     keyPixMapCmpSize            = FOUR_CHAR_CODE('dpcs'),
  99.     keyPixMapAlignment            = FOUR_CHAR_CODE('dppa'),
  100.     keyPixMapResReserved        = FOUR_CHAR_CODE('dprr'),
  101.     keyPixMapReserved            = FOUR_CHAR_CODE('dppr'),
  102.     keyPixMapColorTableSeed        = FOUR_CHAR_CODE('dpct'),
  103.     keySummaryMenubar            = FOUR_CHAR_CODE('dsmb'),
  104.     keySummaryChanges            = FOUR_CHAR_CODE('dsch'),
  105.     keyDisplayOldConfig            = FOUR_CHAR_CODE('dold'),
  106.     keyDisplayNewConfig            = FOUR_CHAR_CODE('dnew')
  107. };
  108.  
  109.  
  110. enum {
  111.     dmOnlyActiveDisplays        = true,
  112.     dmAllDisplays                = false
  113. };
  114.  
  115.  
  116.  
  117. enum {
  118.                                                                 /* DMSendDependentNotification notifyClass */
  119.     kDependentNotifyClassShowCursor = FOUR_CHAR_CODE('shcr'),    /* When display mgr shows a hidden cursor during an unmirror */
  120.     kDependentNotifyClassDriverOverride = FOUR_CHAR_CODE('ndrv'), /* When a driver is overridden */
  121.     kDependentNotifyClassDisplayMgrOverride = FOUR_CHAR_CODE('dmgr'), /* When display manager is upgraded */
  122.     kDependentNotifyClassProfileChanged = FOUR_CHAR_CODE('prof') /* When DMSetProfileByAVID is called */
  123. };
  124.  
  125.  
  126.  
  127. enum {
  128.                                                                 /* Switch Flags */
  129.     kNoSwitchConfirmBit            = 0,                            /* Flag indicating that there is no need to confirm a switch to this mode */
  130.     kDepthNotAvailableBit        = 1,                            /* Current depth not available in new mode */
  131.     kShowModeBit                = 3,                            /* Show this mode even though it requires a confirm. */
  132.     kModeNotResizeBit            = 4,                            /* Do not use this mode to resize display (for cards that mode drives a different connector). */
  133.     kNeverShowModeBit            = 5                                /* This mode should not be shown in the user interface. */
  134. };
  135.  
  136. /*    Summary Change Flags (sticky bits indicating an operation was performed)
  137.     For example, moving a display then moving it back will still set the kMovedDisplayBit.
  138. */
  139.  
  140. enum {
  141.     kBeginEndConfigureBit        = 0,
  142.     kMovedDisplayBit            = 1,
  143.     kSetMainDisplayBit            = 2,
  144.     kSetDisplayModeBit            = 3,
  145.     kAddDisplayBit                = 4,
  146.     kRemoveDisplayBit            = 5,
  147.     kNewDisplayBit                = 6,
  148.     kDisposeDisplayBit            = 7,
  149.     kEnabledDisplayBit            = 8,
  150.     kDisabledDisplayBit            = 9,
  151.     kMirrorDisplayBit            = 10,
  152.     kUnMirrorDisplayBit            = 11
  153. };
  154.  
  155.  
  156.  
  157. enum {
  158.                                                                 /* Notification Messages for extended call back routines */
  159.     kDMNotifyInstalled            = 1,                            /* At install time */
  160.     kDMNotifyEvent                = 2,                            /* Post change time */
  161.     kDMNotifyRemoved            = 3,                            /* At remove time */
  162.     kDMNotifyPrep                = 4,                            /* Pre change time */
  163.     kDMNotifyExtendEvent        = 5,                            /* Allow registrees to extend apple event before it is sent */
  164.     kDMNotifyDependents            = 6,                            /* Minor notification check without full update */
  165.     kDMNotifySuspendConfigure    = 7,                            /* Temporary end of configuration */
  166.     kDMNotifyResumeConfigure    = 8,                            /* Resume configuration */
  167.     kDMNotifyRequestDisplayProbe = 9,                            /* Request smart displays re-probe (used in sleep and hot plugging) */
  168.                                                                 /* Notification Flags */
  169.     kExtendedNotificationProc    = (1L << 16)
  170. };
  171.  
  172.  
  173. /* types for notifyType */
  174.  
  175. enum {
  176.     kFullNotify                    = 0,                            /* This is the appleevent whole nine yards notify */
  177.     kFullDependencyNotify        = 1                                /* Only sends to those who want to know about interrelated functionality (used for updating UI) */
  178. };
  179.  
  180. /* DisplayID/DeviceID constants */
  181.  
  182. enum {
  183.     kDummyDeviceID                = 0x00FF,                        /* This is the ID of the dummy display, used when the last “real” display is disabled.*/
  184.     kInvalidDisplayID            = 0x0000,                        /* This is the invalid ID*/
  185.     kFirstDisplayID                = 0x0100
  186. };
  187.  
  188.  
  189. enum {
  190.                                                                 /* bits for panelListFlags */
  191.     kAllowDuplicatesBit            = 0
  192. };
  193.  
  194.  
  195. enum {
  196.                                                                 /* bits for nameFlags */
  197.     kSuppressNumberBit            = 0,
  198.     kSuppressNumberMask            = 1,
  199.     kForceNumberBit                = 1,
  200.     kForceNumberMask            = 2,
  201.     kSuppressNameBit            = 2,
  202.     kSuppressNameMask            = 4
  203. };
  204.  
  205.  
  206.  
  207. /* Constants for fidelity checks */
  208.  
  209. enum {
  210.     kNoFidelity                    = 0,
  211.     kMinimumFidelity            = 1,
  212.     kDefaultFidelity            = 500,                            /* I'm just picking a number for Apple default panels and engines*/
  213.     kDefaultManufacturerFidelity = 1000                            /* I'm just picking a number for Manufacturer's panels and engines (overrides apple defaults)*/
  214. };
  215.  
  216.  
  217. enum {
  218.     kAnyPanelType                = 0,                            /* Pass to DMNewEngineList for list of all panels (as opposed to specific types)*/
  219.     kAnyEngineType                = 0,                            /* Pass to DMNewEngineList for list of all engines*/
  220.     kAnyDeviceType                = 0,                            /* Pass to DMNewDeviceList for list of all devices*/
  221.     kAnyPortType                = 0                                /* Pass to DMNewDevicePortList for list of all devices*/
  222. };
  223.  
  224. /* portListFlags for DM_NewDevicePortList */
  225.  
  226. enum {
  227.                                                                 /* Should offline devices be put into the port list (such as dummy display) */
  228.     kPLIncludeOfflineDevicesBit    = 0
  229. };
  230.  
  231.  
  232. /* confirmFlags for DMConfirmConfiguration */
  233.  
  234. enum {
  235.     kForceConfirmBit            = 0,                            /* Force a confirm dialog */
  236.     kForceConfirmMask            = (1 << kForceConfirmBit)
  237. };
  238.  
  239.  
  240. /* Flags for displayModeFlags */
  241.  
  242. enum {
  243.     kDisplayModeListNotPreferredBit = 0,
  244.     kDisplayModeListNotPreferredMask = (1 << kDisplayModeListNotPreferredBit)
  245. };
  246.  
  247.  
  248. /* Flags for itemFlags */
  249.  
  250. enum {
  251.     kComponentListNotPreferredBit = 0,
  252.     kComponentListNotPreferredMask = (1 << kComponentListNotPreferredBit)
  253. };
  254.  
  255.  
  256. enum {
  257.     kDisplayTimingInfoVersionZero = 1,
  258.     kDisplayTimingInfoReservedCountVersionZero = 16,
  259.     kDisplayModeEntryVersionZero = 0,                            /* displayModeVersion - original version*/
  260.     kDisplayModeEntryVersionOne    = 1                                /* displayModeVersion - added displayModeOverrideInfo*/
  261. };
  262.  
  263.  
  264.  
  265. enum {
  266.     kMakeAndModelReservedCount    = 4                                /* Number of reserved fields*/
  267. };
  268.  
  269. typedef unsigned long                     DMFidelityType;
  270. /*
  271.    AVID is an ID for ports and devices the old DisplayID type
  272.       is carried on for compatibility
  273. */
  274.  
  275. typedef unsigned long                     AVIDType;
  276. typedef AVIDType                         DisplayIDType;
  277. typedef void *                            DMListType;
  278. typedef unsigned long                     DMListIndexType;
  279. typedef VDPowerStateRec                 AVPowerStateRec;
  280. typedef VDPowerStateRec *                AVPowerStatePtr;
  281.  
  282. struct DMDisplayTimingInfoRec {
  283.     UInt32                             timingInfoVersion;
  284.     UInt32                             timingInfoAttributes;        /* Flags */
  285.     SInt32                             timingInfoRelativeQuality;    /* quality of the timing */
  286.     SInt32                             timingInfoRelativeDefault;    /* relative default of the timing */
  287.  
  288.     UInt32                             timingInfoReserved[16];        /* Reserved */
  289. };
  290. typedef struct DMDisplayTimingInfoRec    DMDisplayTimingInfoRec;
  291.  
  292. typedef DMDisplayTimingInfoRec *        DMDisplayTimingInfoPtr;
  293.  
  294.  
  295. struct DMComponentListEntryRec {
  296.     DisplayIDType                     itemID;                        /* DisplayID Manager*/
  297.     Component                         itemComponent;                /* Component Manager*/
  298.     ComponentDescription             itemDescription;            /* We can always construct this if we use something beyond the compontent mgr.*/
  299.  
  300.     ResType                         itemClass;                    /* Class of group to put this panel (eg geometry/color/etc for panels, brightness/contrast for engines, video out/sound/etc for devices)*/
  301.     DMFidelityType                     itemFidelity;                /* How good is this item for the specified search?*/
  302.     ResType                         itemSubClass;                /* Subclass of group to put this panel.  Can use to do sub-grouping (eg volume for volume panel and mute panel)*/
  303.     Point                             itemSort;                    /* Set to 0 - future to sort the items in a sub group.*/
  304.  
  305.     unsigned long                     itemFlags;                    /* Set to 0 (future expansion)*/
  306.     ResType                         itemReserved;                /* What kind of code does the itemReference point to  (right now - kPanelEntryTypeComponentMgr only)*/
  307.     unsigned long                     itemFuture1;                /* Set to 0 (future expansion - probably an alternate code style)*/
  308.     unsigned long                     itemFuture2;                /* Set to 0 (future expansion - probably an alternate code style)*/
  309.     unsigned long                     itemFuture3;                /* Set to 0 (future expansion - probably an alternate code style)*/
  310.     unsigned long                     itemFuture4;                /* Set to 0 (future expansion - probably an alternate code style)*/
  311. };
  312. typedef struct DMComponentListEntryRec    DMComponentListEntryRec;
  313.  
  314. typedef DMComponentListEntryRec *        DMComponentListEntryPtr;
  315. /* ••• Move AVLocationRec to AVComponents.i AFTER AVComponents.i is created*/
  316.  
  317. struct AVLocationRec {
  318.     unsigned long                     locationConstant;            /* Set to 0 (future expansion - probably an alternate code style)*/
  319. };
  320. typedef struct AVLocationRec            AVLocationRec;
  321.  
  322. typedef AVLocationRec *                    AVLocationPtr;
  323.  
  324. struct DMDepthInfoRec {
  325.     VDSwitchInfoPtr                 depthSwitchInfo;            /* This is the switch mode to choose this timing/depth */
  326.     VPBlockPtr                         depthVPBlock;                /* VPBlock (including size, depth and format) */
  327.     UInt32                             depthFlags;                    /* VDVideoParametersInfoRec.csDepthFlags  */
  328.     UInt32                             depthReserved1;                /* Reserved */
  329.     UInt32                             depthReserved2;                /* Reserved */
  330. };
  331. typedef struct DMDepthInfoRec            DMDepthInfoRec;
  332.  
  333. typedef DMDepthInfoRec *                DMDepthInfoPtr;
  334.  
  335. struct DMDepthInfoBlockRec {
  336.     unsigned long                     depthBlockCount;            /* How many depths are there? */
  337.     DMDepthInfoPtr                     depthVPBlock;                /* Array of DMDepthInfoRec */
  338.     unsigned long                     depthBlockFlags;            /* Reserved */
  339.     unsigned long                     depthBlockReserved1;        /* Reserved */
  340.     unsigned long                     depthBlockReserved2;        /* Reserved */
  341. };
  342. typedef struct DMDepthInfoBlockRec        DMDepthInfoBlockRec;
  343.  
  344. typedef DMDepthInfoBlockRec *            DMDepthInfoBlockPtr;
  345.  
  346. struct DMDisplayModeListEntryRec {
  347.     UInt32                             displayModeFlags;
  348.     VDSwitchInfoPtr                 displayModeSwitchInfo;
  349.     VDResolutionInfoPtr             displayModeResolutionInfo;
  350.     VDTimingInfoPtr                 displayModeTimingInfo;
  351.     DMDepthInfoBlockPtr             displayModeDepthBlockInfo;    /* Information about all the depths*/
  352.     UInt32                             displayModeVersion;            /* What version is this record (now kDisplayModeEntryVersionOne)*/
  353.     StringPtr                         displayModeName;            /* Name of the timing mode*/
  354.     DMDisplayTimingInfoPtr             displayModeDisplayInfo;        /* Information from the display.*/
  355. };
  356. typedef struct DMDisplayModeListEntryRec DMDisplayModeListEntryRec;
  357.  
  358. typedef DMDisplayModeListEntryRec *        DMDisplayModeListEntryPtr;
  359.  
  360.  
  361. struct DependentNotifyRec {
  362.     ResType                         notifyType;                    /* What type was the engine that made the change (may be zero)*/
  363.     ResType                         notifyClass;                /* What class was the change (eg geometry, color etc)*/
  364.     DisplayIDType                     notifyPortID;                /* Which device was touched (kInvalidDisplayID -> all or none)*/
  365.     ComponentInstance                 notifyComponent;            /* What engine did it (may be 0)?*/
  366.  
  367.     unsigned long                     notifyVersion;                /* Set to 0 (future expansion)*/
  368.     unsigned long                     notifyFlags;                /* Set to 0 (future expansion)*/
  369.     unsigned long                     notifyReserved;                /* Set to 0 (future expansion)*/
  370.     unsigned long                     notifyFuture;                /* Set to 0 (future expansion)*/
  371. };
  372. typedef struct DependentNotifyRec        DependentNotifyRec;
  373.  
  374. typedef DependentNotifyRec *            DependentNotifyPtr;
  375.  
  376.  
  377. struct DMMakeAndModelRec {
  378.     ResType                         manufacturer;
  379.     UInt32                             model;
  380.     UInt32                             serialNumber;
  381.     UInt32                             manufactureDate;
  382.  
  383.     UInt32                             makeReserved[4];
  384. };
  385. typedef struct DMMakeAndModelRec        DMMakeAndModelRec;
  386.  
  387. typedef DMMakeAndModelRec *                DMMakeAndModelPtr;
  388.  
  389. /* Exports to support Interfaces library containing unused calls */
  390. #if !FOR_GLUE_LIB
  391. #endif  /* !FOR_GLUE_LIB */
  392.  
  393. typedef CALLBACK_API( void , DMNotificationProcPtr )(AppleEvent *theEvent);
  394. typedef CALLBACK_API( void , DMExtendedNotificationProcPtr )(void *userData, short theMessage, void *notifyData);
  395. typedef CALLBACK_API( void , DMComponentListIteratorProcPtr )(void *userData, DMListIndexType itemIndex, DMComponentListEntryPtr componentInfo);
  396. typedef CALLBACK_API( void , DMDisplayModeListIteratorProcPtr )(void *userData, DMListIndexType itemIndex, DMDisplayModeListEntryPtr displaymodeInfo);
  397. typedef STACK_UPP_TYPE(DMNotificationProcPtr)                     DMNotificationUPP;
  398. typedef STACK_UPP_TYPE(DMExtendedNotificationProcPtr)             DMExtendedNotificationUPP;
  399. typedef STACK_UPP_TYPE(DMComponentListIteratorProcPtr)             DMComponentListIteratorUPP;
  400. typedef STACK_UPP_TYPE(DMDisplayModeListIteratorProcPtr)         DMDisplayModeListIteratorUPP;
  401. enum { uppDMNotificationProcInfo = 0x000000C0 };                 /* pascal no_return_value Func(4_bytes) */
  402. enum { uppDMExtendedNotificationProcInfo = 0x00000EC0 };         /* pascal no_return_value Func(4_bytes, 2_bytes, 4_bytes) */
  403. enum { uppDMComponentListIteratorProcInfo = 0x00000FC0 };         /* pascal no_return_value Func(4_bytes, 4_bytes, 4_bytes) */
  404. enum { uppDMDisplayModeListIteratorProcInfo = 0x00000FC0 };     /* pascal no_return_value Func(4_bytes, 4_bytes, 4_bytes) */
  405. #define NewDMNotificationProc(userRoutine)                         (DMNotificationUPP)NewRoutineDescriptor((ProcPtr)(userRoutine), uppDMNotificationProcInfo, GetCurrentArchitecture())
  406. #define NewDMExtendedNotificationProc(userRoutine)                 (DMExtendedNotificationUPP)NewRoutineDescriptor((ProcPtr)(userRoutine), uppDMExtendedNotificationProcInfo, GetCurrentArchitecture())
  407. #define NewDMComponentListIteratorProc(userRoutine)             (DMComponentListIteratorUPP)NewRoutineDescriptor((ProcPtr)(userRoutine), uppDMComponentListIteratorProcInfo, GetCurrentArchitecture())
  408. #define NewDMDisplayModeListIteratorProc(userRoutine)             (DMDisplayModeListIteratorUPP)NewRoutineDescriptor((ProcPtr)(userRoutine), uppDMDisplayModeListIteratorProcInfo, GetCurrentArchitecture())
  409. #define CallDMNotificationProc(userRoutine, theEvent)             CALL_ONE_PARAMETER_UPP((userRoutine), uppDMNotificationProcInfo, (theEvent))
  410. #define CallDMExtendedNotificationProc(userRoutine, userData, theMessage, notifyData)  CALL_THREE_PARAMETER_UPP((userRoutine), uppDMExtendedNotificationProcInfo, (userData), (theMessage), (notifyData))
  411. #define CallDMComponentListIteratorProc(userRoutine, userData, itemIndex, componentInfo)  CALL_THREE_PARAMETER_UPP((userRoutine), uppDMComponentListIteratorProcInfo, (userData), (itemIndex), (componentInfo))
  412. #define CallDMDisplayModeListIteratorProc(userRoutine, userData, itemIndex, displaymodeInfo)  CALL_THREE_PARAMETER_UPP((userRoutine), uppDMDisplayModeListIteratorProcInfo, (userData), (itemIndex), (displaymodeInfo))
  413.  
  414. /* Trap interfaces */
  415.  
  416. #if !FOR_GLUE_LIB
  417. EXTERN_API( GDHandle )
  418. DMGetFirstScreenDevice            (Boolean                 activeOnly)                            TWOWORDINLINE(0x7000, 0xABEB);
  419.  
  420. EXTERN_API( GDHandle )
  421. DMGetNextScreenDevice            (GDHandle                 theDevice,
  422.                                  Boolean                 activeOnly)                            TWOWORDINLINE(0x7001, 0xABEB);
  423.  
  424. EXTERN_API( void )
  425. DMDrawDesktopRect                (Rect *                    globalRect)                            TWOWORDINLINE(0x7002, 0xABEB);
  426.  
  427. EXTERN_API( void )
  428. DMDrawDesktopRegion                (RgnHandle                 globalRgn)                            TWOWORDINLINE(0x7003, 0xABEB);
  429.  
  430.  
  431.  
  432. EXTERN_API( OSErr )
  433. DMBeginConfigureDisplays        (Handle *                displayState)                        THREEWORDINLINE(0x303C, 0x0206, 0xABEB);
  434.  
  435. EXTERN_API( OSErr )
  436. DMEndConfigureDisplays            (Handle                 displayState)                        THREEWORDINLINE(0x303C, 0x0207, 0xABEB);
  437.  
  438. EXTERN_API( OSErr )
  439. DMAddDisplay                    (GDHandle                 newDevice,
  440.                                  short                     driver,
  441.                                  unsigned long             mode,
  442.                                  unsigned long             reserved,
  443.                                  unsigned long             displayID,
  444.                                  Component                 displayComponent,
  445.                                  Handle                 displayState)                        THREEWORDINLINE(0x303C, 0x0D08, 0xABEB);
  446.  
  447. EXTERN_API( OSErr )
  448. DMMoveDisplay                    (GDHandle                 moveDevice,
  449.                                  short                     x,
  450.                                  short                     y,
  451.                                  Handle                 displayState)                        THREEWORDINLINE(0x303C, 0x0609, 0xABEB);
  452.  
  453. EXTERN_API( OSErr )
  454. DMDisableDisplay                (GDHandle                 disableDevice,
  455.                                  Handle                 displayState)                        THREEWORDINLINE(0x303C, 0x040A, 0xABEB);
  456.  
  457. EXTERN_API( OSErr )
  458. DMEnableDisplay                    (GDHandle                 enableDevice,
  459.                                  Handle                 displayState)                        THREEWORDINLINE(0x303C, 0x040B, 0xABEB);
  460.  
  461. EXTERN_API( OSErr )
  462. DMRemoveDisplay                    (GDHandle                 removeDevice,
  463.                                  Handle                 displayState)                        THREEWORDINLINE(0x303C, 0x040C, 0xABEB);
  464.  
  465.  
  466.  
  467.  
  468. EXTERN_API( OSErr )
  469. DMSetMainDisplay                (GDHandle                 newMainDevice,
  470.                                  Handle                 displayState)                        THREEWORDINLINE(0x303C, 0x0410, 0xABEB);
  471.  
  472. EXTERN_API( OSErr )
  473. DMSetDisplayMode                (GDHandle                 theDevice,
  474.                                  unsigned long             mode,
  475.                                  unsigned long *        depthMode,
  476.                                  unsigned long             reserved,
  477.                                  Handle                 displayState)                        THREEWORDINLINE(0x303C, 0x0A11, 0xABEB);
  478.  
  479. EXTERN_API( OSErr )
  480. DMCheckDisplayMode                (GDHandle                 theDevice,
  481.                                  unsigned long             mode,
  482.                                  unsigned long             depthMode,
  483.                                  unsigned long *        switchFlags,
  484.                                  unsigned long             reserved,
  485.                                  Boolean *                modeOk)                                THREEWORDINLINE(0x303C, 0x0C12, 0xABEB);
  486.  
  487. EXTERN_API( OSErr )
  488. DMGetDeskRegion                    (RgnHandle *            desktopRegion)                        THREEWORDINLINE(0x303C, 0x0213, 0xABEB);
  489.  
  490. EXTERN_API( OSErr )
  491. DMRegisterNotifyProc            (DMNotificationUPP         notificationProc,
  492.                                  ProcessSerialNumberPtr  whichPSN)                            THREEWORDINLINE(0x303C, 0x0414, 0xABEB);
  493.  
  494. EXTERN_API( OSErr )
  495. DMRemoveNotifyProc                (DMNotificationUPP         notificationProc,
  496.                                  ProcessSerialNumberPtr  whichPSN)                            THREEWORDINLINE(0x303C, 0x0415, 0xABEB);
  497.  
  498.  
  499. EXTERN_API( OSErr )
  500. DMQDIsMirroringCapable            (Boolean *                qdIsMirroringCapable)                THREEWORDINLINE(0x303C, 0x0216, 0xABEB);
  501.  
  502. EXTERN_API( OSErr )
  503. DMCanMirrorNow                    (Boolean *                canMirrorNow)                        THREEWORDINLINE(0x303C, 0x0217, 0xABEB);
  504.  
  505. EXTERN_API( OSErr )
  506. DMIsMirroringOn                    (Boolean *                isMirroringOn)                        THREEWORDINLINE(0x303C, 0x0218, 0xABEB);
  507.  
  508. EXTERN_API( OSErr )
  509. DMMirrorDevices                    (GDHandle                 gD1,
  510.                                  GDHandle                 gD2,
  511.                                  Handle                 displayState)                        THREEWORDINLINE(0x303C, 0x0619, 0xABEB);
  512.  
  513. EXTERN_API( OSErr )
  514. DMUnmirrorDevice                (GDHandle                 gDevice,
  515.                                  Handle                 displayState)                        THREEWORDINLINE(0x303C, 0x041A, 0xABEB);
  516.  
  517. EXTERN_API( OSErr )
  518. DMGetNextMirroredDevice            (GDHandle                 gDevice,
  519.                                  GDHandle *                mirroredDevice)                        THREEWORDINLINE(0x303C, 0x041B, 0xABEB);
  520.  
  521. EXTERN_API( OSErr )
  522. DMBlockMirroring                (void)                                                        TWOWORDINLINE(0x701C, 0xABEB);
  523.  
  524. EXTERN_API( OSErr )
  525. DMUnblockMirroring                (void)                                                        TWOWORDINLINE(0x701D, 0xABEB);
  526.  
  527. EXTERN_API( OSErr )
  528. DMGetDisplayMgrA5World            (Ptr *                    dmA5)                                THREEWORDINLINE(0x303C, 0x021E, 0xABEB);
  529.  
  530. EXTERN_API( OSErr )
  531. DMGetDisplayIDByGDevice            (GDHandle                 displayDevice,
  532.                                  DisplayIDType *        displayID,
  533.                                  Boolean                 failToMain)                            THREEWORDINLINE(0x303C, 0x051F, 0xABEB);
  534.  
  535. EXTERN_API( OSErr )
  536. DMGetGDeviceByDisplayID            (DisplayIDType             displayID,
  537.                                  GDHandle *                displayDevice,
  538.                                  Boolean                 failToMain)                            THREEWORDINLINE(0x303C, 0x0520, 0xABEB);
  539.  
  540. EXTERN_API( OSErr )
  541. DMSetDisplayComponent            (GDHandle                 theDevice,
  542.                                  Component                 displayComponent)                    THREEWORDINLINE(0x303C, 0x0421, 0xABEB);
  543.  
  544. EXTERN_API( OSErr )
  545. DMGetDisplayComponent            (GDHandle                 theDevice,
  546.                                  Component *            displayComponent)                    THREEWORDINLINE(0x303C, 0x0422, 0xABEB);
  547.  
  548. EXTERN_API( OSErr )
  549. DMNewDisplay                    (GDHandle *                newDevice,
  550.                                  short                     driverRefNum,
  551.                                  unsigned long             mode,
  552.                                  unsigned long             reserved,
  553.                                  DisplayIDType             displayID,
  554.                                  Component                 displayComponent,
  555.                                  Handle                 displayState)                        THREEWORDINLINE(0x303C, 0x0D23, 0xABEB);
  556.  
  557. EXTERN_API( OSErr )
  558. DMDisposeDisplay                (GDHandle                 disposeDevice,
  559.                                  Handle                 displayState)                        THREEWORDINLINE(0x303C, 0x0424, 0xABEB);
  560.  
  561. EXTERN_API( OSErr )
  562. DMResolveDisplayComponents        (void)                                                        TWOWORDINLINE(0x7025, 0xABEB);
  563.  
  564. #endif  /* !FOR_GLUE_LIB */
  565.  
  566. #if !FOR_68kGLUE_LIB
  567. EXTERN_API( OSErr )
  568. DMRegisterExtendedNotifyProc    (DMExtendedNotificationUPP  notifyProc,
  569.                                  void *                    notifyUserData,
  570.                                  unsigned short         nofifyOnFlags,
  571.                                  ProcessSerialNumberPtr  whichPSN)                            THREEWORDINLINE(0x303C, 0x07EF, 0xABEB);
  572.  
  573. EXTERN_API( OSErr )
  574. DMRemoveExtendedNotifyProc        (DMExtendedNotificationUPP  notifyProc,
  575.                                  void *                    notifyUserData,
  576.                                  ProcessSerialNumberPtr  whichPSN,
  577.                                  unsigned short         removeFlags)                        THREEWORDINLINE(0x303C, 0x0726, 0xABEB);
  578.  
  579. #endif  /* !FOR_68kGLUE_LIB */
  580.  
  581. EXTERN_API( OSErr )
  582. DMNewAVPanelList                (DisplayIDType             displayID,
  583.                                  ResType                 panelType,
  584.                                  DMFidelityType         minimumFidelity,
  585.                                  unsigned long             panelListFlags,
  586.                                  unsigned long             reserved,
  587.                                  DMListIndexType *        thePanelCount,
  588.                                  DMListType *            thePanelList)                        THREEWORDINLINE(0x303C, 0x0C27, 0xABEB);
  589.  
  590. EXTERN_API( OSErr )
  591. DMNewAVEngineList                (DisplayIDType             displayID,
  592.                                  ResType                 engineType,
  593.                                  DMFidelityType         minimumFidelity,
  594.                                  unsigned long             engineListFlags,
  595.                                  unsigned long             reserved,
  596.                                  DMListIndexType *        engineCount,
  597.                                  DMListType *            engineList)                            THREEWORDINLINE(0x303C, 0x0C28, 0xABEB);
  598.  
  599. EXTERN_API( OSErr )
  600. DMNewAVDeviceList                (ResType                 deviceType,
  601.                                  unsigned long             deviceListFlags,
  602.                                  unsigned long             reserved,
  603.                                  DMListIndexType *        deviceCount,
  604.                                  DMListType *            deviceList)                            THREEWORDINLINE(0x303C, 0x0A29, 0xABEB);
  605.  
  606. EXTERN_API( OSErr )
  607. DMNewAVPortListByPortType        (ResType                 subType,
  608.                                  unsigned long             portListFlags,
  609.                                  unsigned long             reserved,
  610.                                  DMListIndexType *        devicePortCount,
  611.                                  DMListType *            theDevicePortList)                    THREEWORDINLINE(0x303C, 0x0A2A, 0xABEB);
  612.  
  613. EXTERN_API( OSErr )
  614. DMGetIndexedComponentFromList    (DMListType             panelList,
  615.                                  DMListIndexType         itemIndex,
  616.                                  unsigned long             reserved,
  617.                                  DMComponentListIteratorUPP  listIterator,
  618.                                  void *                    userData)                            THREEWORDINLINE(0x303C, 0x0A2B, 0xABEB);
  619.  
  620. #if !FOR_68kGLUE_LIB
  621. EXTERN_API( OSErr )
  622. DMDisposeList                    (DMListType             panelList)                            THREEWORDINLINE(0x303C, 0x022C, 0xABEB);
  623.  
  624. #endif  /* !FOR_68kGLUE_LIB */
  625.  
  626. EXTERN_API( OSErr )
  627. DMGetNameByAVID                    (AVIDType                 theID,
  628.                                  unsigned long             nameFlags,
  629.                                  Str255                 name)                                THREEWORDINLINE(0x303C, 0x062D, 0xABEB);
  630.  
  631. EXTERN_API( OSErr )
  632. DMNewAVIDByPortComponent        (Component                 thePortComponent,
  633.                                  ResType                 portKind,
  634.                                  unsigned long             reserved,
  635.                                  AVIDType *                newID)                                THREEWORDINLINE(0x303C, 0x082E, 0xABEB);
  636.  
  637. EXTERN_API( OSErr )
  638. DMGetPortComponentByAVID        (DisplayIDType             thePortID,
  639.                                  Component *            thePortComponent,
  640.                                  ComponentDescription *    theDesciption,
  641.                                  ResType *                thePortKind)                        THREEWORDINLINE(0x303C, 0x082F, 0xABEB);
  642.  
  643. #if !FOR_68kGLUE_LIB
  644. EXTERN_API( OSErr )
  645. DMSendDependentNotification        (ResType                 notifyType,
  646.                                  ResType                 notifyClass,
  647.                                  AVIDType                 displayID,
  648.                                  ComponentInstance         notifyComponent)                    THREEWORDINLINE(0x303C, 0x0830, 0xABEB);
  649.  
  650. #endif  /* !FOR_68kGLUE_LIB */
  651.  
  652. EXTERN_API( OSErr )
  653. DMDisposeAVComponent            (Component                 theAVComponent)                        THREEWORDINLINE(0x303C, 0x0231, 0xABEB);
  654.  
  655. EXTERN_API( OSErr )
  656. DMSaveScreenPrefs                (unsigned long             reserved1,
  657.                                  unsigned long             saveFlags,
  658.                                  unsigned long             reserved2)                            THREEWORDINLINE(0x303C, 0x0632, 0xABEB);
  659.  
  660. EXTERN_API( OSErr )
  661. DMNewAVIDByDeviceComponent        (Component                 theDeviceComponent,
  662.                                  ResType                 portKind,
  663.                                  unsigned long             reserved,
  664.                                  DisplayIDType *        newID)                                THREEWORDINLINE(0x303C, 0x0833, 0xABEB);
  665.  
  666. EXTERN_API( OSErr )
  667. DMNewAVPortListByDeviceAVID        (AVIDType                 theID,
  668.                                  DMFidelityType         minimumFidelity,
  669.                                  unsigned long             portListFlags,
  670.                                  unsigned long             reserved,
  671.                                  DMListIndexType *        devicePortCount,
  672.                                  DMListType *            theDevicePortList)                    THREEWORDINLINE(0x303C, 0x0C34, 0xABEB);
  673.  
  674. EXTERN_API( OSErr )
  675. DMGetDeviceComponentByAVID        (AVIDType                 theDeviceID,
  676.                                  Component *            theDeviceComponent,
  677.                                  ComponentDescription *    theDesciption,
  678.                                  ResType *                theDeviceKind)                        THREEWORDINLINE(0x303C, 0x0835, 0xABEB);
  679.  
  680. EXTERN_API( OSErr )
  681. DMNewDisplayModeList            (DisplayIDType             displayID,
  682.                                  unsigned long             modeListFlags,
  683.                                  unsigned long             reserved,
  684.                                  DMListIndexType *        thePanelCount,
  685.                                  DMListType *            thePanelList)                        THREEWORDINLINE(0x303C, 0x0A36, 0xABEB);
  686.  
  687. EXTERN_API( OSErr )
  688. DMGetIndexedDisplayModeFromList    (DMListType             panelList,
  689.                                  DMListIndexType         itemIndex,
  690.                                  unsigned long             reserved,
  691.                                  DMDisplayModeListIteratorUPP  listIterator,
  692.                                  void *                    userData)                            THREEWORDINLINE(0x303C, 0x0A37, 0xABEB);
  693.  
  694. EXTERN_API( OSErr )
  695. DMGetGraphicInfoByAVID            (AVIDType                 theID,
  696.                                  PicHandle *            theAVPcit,
  697.                                  Handle *                theAVIconSuite,
  698.                                  AVLocationRec *        theAVLocation)                        THREEWORDINLINE(0x303C, 0x0838, 0xABEB);
  699.  
  700. EXTERN_API( OSErr )
  701. DMGetAVPowerState                (AVIDType                 theID,
  702.                                  AVPowerStatePtr         getPowerState,
  703.                                  unsigned long             reserved1)                            THREEWORDINLINE(0x303C, 0x0839, 0xABEB);
  704.  
  705. EXTERN_API( OSErr )
  706. DMSetAVPowerState                (AVIDType                 theID,
  707.                                  AVPowerStatePtr         setPowerState,
  708.                                  unsigned long             powerFlags,
  709.                                  Handle                 displayState)                        THREEWORDINLINE(0x303C, 0x083A, 0xABEB);
  710.  
  711. EXTERN_API( OSErr )
  712. DMGetDeviceAVIDByPortAVID        (AVIDType                 portAVID,
  713.                                  AVIDType *                deviceAVID)                            THREEWORDINLINE(0x303C, 0x043B, 0xABEB);
  714.  
  715. EXTERN_API( OSErr )
  716. DMGetEnableByAVID                (AVIDType                 theAVID,
  717.                                  Boolean *                isAVIDEnabledNow,
  718.                                  Boolean *                canChangeEnableNow)                    THREEWORDINLINE(0x303C, 0x063C, 0xABEB);
  719.  
  720. EXTERN_API( OSErr )
  721. DMSetEnableByAVID                (AVIDType                 theAVID,
  722.                                  Boolean                 doEnable,
  723.                                  Handle                 displayState)                        THREEWORDINLINE(0x303C, 0x053D, 0xABEB);
  724.  
  725. EXTERN_API( OSErr )
  726. DMGetDisplayMode                (GDHandle                 theDevice,
  727.                                  VDSwitchInfoPtr         switchInfo)                            THREEWORDINLINE(0x303C, 0x043E, 0xABEB);
  728.  
  729. EXTERN_API( OSErr )
  730. DMConfirmConfiguration            (ModalFilterUPP         filterProc,
  731.                                  UInt32                 confirmFlags,
  732.                                  UInt32                 reserved,
  733.                                  Handle                 displayState)                        THREEWORDINLINE(0x303C, 0x083F, 0xABEB);
  734.  
  735.  
  736.  
  737. #if PRAGMA_STRUCT_ALIGN
  738.     #pragma options align=reset
  739. #elif PRAGMA_STRUCT_PACKPUSH
  740.     #pragma pack(pop)
  741. #elif PRAGMA_STRUCT_PACK
  742.     #pragma pack()
  743. #endif
  744.  
  745. #ifdef PRAGMA_IMPORT_OFF
  746. #pragma import off
  747. #elif PRAGMA_IMPORT
  748. #pragma import reset
  749. #endif
  750.  
  751. #ifdef __cplusplus
  752. }
  753. #endif
  754.  
  755. #endif /* __DISPLAYS__ */
  756.  
  757.